#ifndef COMMAND_H
#define COMMAND_H

enum CommandType {
  ARM7_SET_CHANNEL,
  ARM7_UPDATE_CHANNEL,
  ARM7_STOP_CHANNEL,
};

struct SetChannelCommand
{
  int channel;
  int frequency;
  int length;
  u8 pan;
};

struct UpdateChannelCommand
{
  int channel;
  const void* data;
  int volume;
};

struct Command {
  CommandType commandType;
  union {
    SetChannelCommand setChannel;
    UpdateChannelCommand updateChannel;
    int stopChannel;
  };
};

#endif
